import Vue from "vue";
import VueRouter from "vue-router";
import Home from "../views/Home.vue";

// 路由版本问题
const originalPush = VueRouter.prototype.push
const originalReplace = VueRouter.prototype.replace
// push
VueRouter.prototype.push = function push(location, onResolve, onReject) {
  if (onResolve || onReject) return originalPush.call(this, location, onResolve, onReject)
  return originalPush.call(this, location).catch(err => err)
}
// replace
VueRouter.prototype.replace = function push(location, onResolve, onReject) {
  if (onResolve || onReject) return originalReplace.call(this, location, onResolve, onReject)
  return originalReplace.call(this, location).catch(err => err)
}


Vue.use(VueRouter);

const routes = [{
  path: "/home",
  name: "Home",
  component: Home,
},
{
  path: "/",
  redirect: '/home'
},

{
  path: "/my",
  name: "My",
  component: () =>
    import("../views/My.vue"),
},
{
  path: "/search",
  name: "Search",
  children: [{
    path: "/",
    name: "index",
    component: () =>
      import("../views/search/Search-index.vue"),
  },

  {
    path: "list",
    name: "list",
    component: () =>
      import("../views/search/Search-list.vue"),
  }
  ],
  component: () =>
    import("../views/Search.vue"),
},
{
  path: "/login",
  name: "Login",
  component: () =>
    import("../views/login/Login.vue"),
},
{
  path: "/userLogin",
  name: "UserLogin",
  component: () =>
    import("../views/login/UserLogin.vue"),
},
{
  path: "/register",
  name: "Register",
  component: () =>
    import("../views/login/Register.vue"),
},

{
  path: "/cate/:id",
  name: "Cate",
  meta: {
    keepAlive: true
  },
  component: () =>
    import("../views/Cate.vue"),
},
{
  path: "/detail/:id",
  name: "Detail",
  meta: {
    keepAlive: true
  },
  component: () =>
    import("../views/Detail.vue"),
},

{
  path: "/order",
  name: "Order",
  meta: {
    keepAlive: true
  },
  component: () =>
    import("../views/Order.vue"),
},
{
  path: "/payment",
  name: "Payment",
  component: () =>
    import("../views/Payment.vue"),
},
{
  path: "/path",
  name: "Path",
  children: [{
    path: "/",
    name: "pathIndex",
    component: () =>
      import("../views/path/Path-Index.vue"),
  },
  {
    path: "path-list",
    name: "path-list",
    component: () =>
      import("../views/path/Path-List.vue"),
  },
  ],
  component: () =>
    import("../views/Path.vue"),
},
{
  path: "/list",
  name: "List",
  component: () =>
    import("../views/List.vue"),
},
{
  path: "/chaxue",
  name: "chaxue",
  component: () =>
    import("../views/list/chaxue.vue"),
},
{
  path: "/chafu",
  name: "chafu",
  component: () =>
    import("../views/list/chafu.vue"),
},
{
  path: "/chashu",
  name: "chashu",
  component: () =>
    import("../views/list/chashu.vue"),
},
{
  path: "/cart",
  name: "Cart",
  component: () =>
    import("../views/Cart.vue"),
},
{
  path: "/daifu",
  name: "Daifu",
  component: () =>
    import("../views/list/daifu.vue"),
},
{
  path: "/yifu",
  name: "Yfu",
  component: () =>
    import("../views/list/yifu.vue"),
},
{
  path: "/recovery",
  name: "Recovery",
  children: [{
    path: "/",
    name: "index",
    component: () =>
      import("../views/recovery/RecoveryIndex.vue"),
  },
  {
    path: "btn",
    name: "btn",
    component: () =>
      import("../views/recovery/RecoveryBtn.vue"),
  }
  ],
  component: () =>
    import("../views/Search.vue"),
},

];

const router = new VueRouter({
  base: process.env.BASE_URL,
  routes,
});

router.beforeEach((to, from, next) => {

  let nextRoute = ['Payment', 'Cart', 'Path', 'Order', 'pathIndex', 'path-list'];
  //是否是登录中
  let userInfo = JSON.parse(localStorage.getItem('teaUserInfo'));
  console.log(to);
  //当前进入的页面，是不是需要验证哪些页面
  if (nextRoute.indexOf(to.name) >= 0) {
    if (!userInfo) {
      router.push('/login');
    }
  }

  next();
})



export default router;